

package com.scs.application.modules.base.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.scs.application.core.model.DataEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * 耗材询价单明细实体对象
 *
 */
@TableName("material_inquiry_item")
@Data
@EqualsAndHashCode(callSuper = false)
@ToString(callSuper = true)
@Accessors(chain = true)
public class MaterialInquiryItem extends DataEntity implements Serializable {

    /**
     * 参考单据标识
     */
    @Length(max = 20, message = "参考单据标识长度必须介于 0 和 20 之间")
    private String refId;

    /**
     * 询价单ID
     */
    @NotBlank(message = "询价单ID不能为空")
    @Length(min = 1, max = 20, message = "询价单ID长度必须介于 1 和 20 之间")
    private String inquiryId;

    /**
     * 品名
     */
    @NotBlank(message = "品名不能为空")
    @Length(min = 1, max = 100, message = "品名长度必须介于 1 和 100 之间")
    private String materialName;

    /**
     * 品规
     */
    @NotBlank(message = "品规不能为空")
    @Length(min = 1, max = 200, message = "品规长度必须介于 1 和 200 之间")
    private String materialSpec;

    /**
     * 院方分类ID
     */
    @NotBlank(message = "院方分类ID不能为空")
    @Length(min = 1, max = 20, message = "院方分类ID长度必须介于 1 和 20 之间")
    private String catalogIdHospital;

    /**
     * 院方分类名称
     */
    @Length(max = 50, message = "院方分类名称长度必须介于 0 和 50 之间")
    private String catalogNameHospital;

    /**
     * 平台分类ID
     */
    @NotBlank(message = "平台分类ID不能为空")
    @Length(min = 1, max = 20, message = "平台分类ID长度必须介于 1 和 20 之间")
    private String catalogId;

    /**
     * 平台分类名称
     */
    @Length(max = 50, message = "平台分类名称长度必须介于 0 和 50 之间")
    private String catalogName;

    /**
     * 厂商
     */
    @NotBlank(message = "厂商不能为空")
    @Length(min = 1, max = 200, message = "厂商长度必须介于 1 和 200 之间")
    private String manufacturerName;

    /**
     * 单品单位
     */
    @NotBlank(message = "单品单位不能为空")
    @Length(min = 1, max = 10, message = "单品单位长度必须介于 1 和 10 之间")
    private String skuUnit;

    /**
     * 预估价格
     */
    @NotNull(message = "预估价格不能为空")
    private Double skuPrice;

    /**
     * 预估用量/年
     */
    @NotNull(message = "预估用量/年不能为空")
    private Double qtyYear;

    /**
     * 临床科室要求
     */
    @Length(max = 200, message = "临床科室要求长度必须介于 0 和 200 之间")
    private String deptRemark;

    /**
     * 中标价格
     */
    private Double skuOfficialPrice;

    /**
     * 中标价来源
     */
    @Length(max = 20, message = "中标价来源长度必须介于 0 和 20 之间")
    private String skuOfficialPriceSrc;

    /**
     * 最高限价
     */
    private Double skuPriceMax;

    /**
     * 最低限价
     */
    private Double skuPriceMin;

    /**
     * 送货地址
     */
    @Length(max = 100, message = "送货地址长度必须介于 0 和 100 之间")
    private String deliveryAddress;

    /**
     * 询价要求
     */
    @Length(max = 100, message = "询价要求长度必须介于 0 和 100 之间")
    private String inquiryRemark;

    /**
     * 中标供应商ID
     */
    @Length(max = 20, message = "中标供应商ID长度必须介于 0 和 20 之间")
    private String supplierId;

    /**
     * 中标供应商代码
     */
    @Length(max = 30, message = "中标供应商代码长度必须介于 0 和 30 之间")
    private String supplierCode;

    /**
     * 中标供应商名称
     */
    @Length(max = 100, message = "中标供应商名称长度必须介于 0 和 100 之间")
    private String supplierName;

    /**
     * 中标采购价格
     */
    private Double skuPricePurchase;

    /**
     * 注册证号
     */
    private String certificateNo;

    /**
     * 阳光采购编码
     */
    private String sunpurchaseCode;

}
